package com.yl.auth.model.entity;

import java.beans.Transient;
import java.time.LocalDate;
import java.io.Serializable;
import java.util.List;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 *
 * </p>
 *
 * @author yl
 * @since 2023-06-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "老人实体类")
public class Laoren implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键，唯一标识每个老人
     */
        @TableId(value = "id",type = IdType.AUTO)
        @ApiModelProperty("主键Id")
      private Long id;

    /**
     * 头像图片链接或保存路径
     */
    @ApiModelProperty("图片")
    private String avatar;

    /**
     * 名字
     */
    @ApiModelProperty("名字")
    private String name;

    /**
     * 性别
     */
    @ApiModelProperty("性别")
    private String gender;

    /**
     * 民族
     */
    @ApiModelProperty("民族")
    private String nationality;

    /**
     * 籍贯
     */
    @ApiModelProperty("籍贯")
    private String origin;

    /**
     * 出生年月日
     */
    @ApiModelProperty("出生年月日")
    private LocalDate birthDate;

    /**
     * 家庭住址
     */
    @ApiModelProperty("家庭住址")
    private String address;

    /**
     * 政治面貌
     */
    @ApiModelProperty("政治面貌")
    private String politicalStatus;

    /**
     * 社保卡号
     */
    @ApiModelProperty("社保卡号")
    private String socialSecurityNumber;

    /**
     * 婚姻状况
     */
    @ApiModelProperty("婚姻状况")
    private String maritalStatus;

    /**
     * 受教育程度
     */
    @ApiModelProperty("受教育程度")
    private String educationLevel;

    /**
     * 最高学历
     */
    @ApiModelProperty("最高学历")
    private String highestEducation;

    /**
     * 户口所在地
     */
    @ApiModelProperty("户口所在地")
    private String hukouLocation;

    /**
     * 联系方式
     */
    @ApiModelProperty("联系方式")
    private String contact;

    /**
     * 身份证号
     */
    @ApiModelProperty("身份证号")
    @ExcelProperty("身份证号")
    private String idNumber;

    /**
     * 状态 0未签约 1预约中 2已入院 3已出院
     */

    @ApiModelProperty("状态 0未签约 1预约中 2已入院 3已出院")
    private Integer status;

    /**
     * 入院日期
     */
    @ApiModelProperty("入院日期")
    private LocalDate admissionDate;

    /**
     * 档案id
     */
    @ApiModelProperty("档案Id")
    private Long archiveId;

    /**
     * 床位id
     */
    @ApiModelProperty("床位Id")
    private Long bedId;

    @TableField(exist = false)
    @ApiModelProperty("床位号")
    private String bedName;

    /**
     * 护理等级id
     */
    @ApiModelProperty("护理等级id")
    private Long careLevelId;

    @ApiModelProperty("护理等级名称")
    @TableField(exist = false)
    private String huliname;

    @ApiModelProperty("护理等级入院详情")
    @TableField(exist = false)
    private String huliNameRuyuan;

    @TableField("is_deleted")
    @TableLogic
    @ApiModelProperty("是否删除")
    private Integer isDeleted;

    /**
     * 多对多的关系
     */
    @TableField(exist = false)
    @ApiModelProperty("体检集合")
    private List<Tijianbaogao> tiJianList;

    /**
     * 一对一
     */
    @ApiModelProperty("病史类")
    @TableField(exist = false)
    private Bingshi bingshi;

    @ApiModelProperty("药品数量")
    @TableField(exist = false)
    private Integer yaopinNumber;

    @ApiModelProperty("房间id")
    @TableField("room_id")
    private Integer roomId;

    @ApiModelProperty("推荐人外键")
    private Integer referenceId;

    @ApiModelProperty("合作组织外键")
    private Integer cooperativeId;


    @TableField(exist = false)
    private String chuangWeiFangJian;

    @TableField(exist = false)
    private String chuangWeiBed;

    @TableField(exist = false)
    @ApiModelProperty(value = "其他疾病")
    private String descbingshi;

    @ApiModelProperty(value = "新病史")
    @TableField(exist = false)
    private String newbingshis;

    @ApiModelProperty(value = "既往病史")
    @TableField(exist = false)
    private String oldbingshis;
}
